package com.xbongbong.pro.menu.pojo.vo;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 菜单列表返回信息
 * @author 吴峰
 * @version v1.0
 * @date 2019/1/9 10:00
 * @since v1.0
 */
@Getter
@Setter
@ToString
public class AppMenuListVO implements Serializable {
    private static final long serialVersionUID = 4869450391913247430L;

    /**
     * 主键id
     */
    private Long id;

    /**
     * 公司id
     */
    private String corpid;

    /**
     * 应用id
     */
    private Long appId;

    /**
     * 父类id
     */
    private Long parentId;

    /**
     * 表单id
     */
    private Integer formId;

    /**
     * 菜单名称
     */
    private String name;

    /**
     * 菜单英文名称
     */
    private String nameEn;

    /**
     * 源菜单名称，主要给埋点用
     */
    private String sourceName;

    /**
     * 应用图标
     */
    private String icon;
    /**
     * 颜色，16进制色，如 FF0000
     */
    private String color;

    /**
     * 菜单排序
     */
    private Integer sort;

    /**
     * 菜单类型，1 分组，2 表单，3 表单(开启流程)，4 统计
     */
    private  Integer type;

    /**
     * 菜单标示，主要用于saas菜单识别，如"contractList"
     * @see com.xbongbong.saas.enums.XbbRefTypeEnum
     */
    private String alias;

    /**
     * 业务类型
     * @see com.xbongbong.saas.enums.XbbRefTypeEnum
     */
    private Integer businessType;

    /**
     * 1为saas菜单，2为自建菜单
     */
    private Integer saasMark;

    /**
     * 是否启用，1启用，0不启用
     */
    private Integer enable;

    /**
     * 显示菜单
     */
    private List<AppMenuListVO> subMenuList;

    /**
     * 是否为常用表单 1：是 0：不是
     */
    private Integer commonFormFlag;

    /**
     * 是否为快捷新建表单 1：是 0：不是
     */
    private Integer quickNewFormFlag;

    /**
     * 是否可以快捷新建 1可以 0 不可以
     */
    private Integer hasQuickNewFlag;

    /**
     * 链接
     */
    private String url;

    private String mobileUrl;

    private String actions;

    private Integer packageLimit;

    private String message;

    /**
     * 经销商标识，1是 2否
     */
    private Integer distributorMark;

    private Boolean isAdminCommunicatePlan;

    public AppMenuListVO(){
        subMenuList = new ArrayList<>();
        url = "";
        mobileUrl = "";
        commonFormFlag = 0;
        quickNewFormFlag = 0;
        hasQuickNewFlag = 1;
    }
}
